//获得公钥
var getKeyValue = function(data,modulus,publicExponent){
	
	if(publicExponent==''||!publicExponent) 
		return data;
	var rsa = new RSAKey();
	rsa.setPublic(modulus, publicExponent);
	var res = rsa.encrypt(data);
	
	if(res == null) 
		return data;
	return res;
};
//输入json参数，RSA公钥合数模N(modulus)和公钥公开幂e(publicExponent)
var encReqData = function(secEncMsg,modulus,publicExponent){
	
	debugger;
	if(!secEncMsg||!modulus||!publicExponent||modulus==""||publicExponent==""){
		return base64Data;
	}
	var secEncMsgStr=JSON.stringify(secEncMsg);
	var base64Data= BASE64.encoder(secEncMsgStr);
	
	//由于选用的javascrypt RSA 加解密数据长度受限，数据不能超过密钥的长度-11，超过了要分段加密
    //计算数据长度，准备分段加密
	var dataLen = base64Data.length%240==0?parseInt(base64Data.length/240):parseInt(base64Data.length/240)+1;
    var fullEncBase64Data="";
	for(var i=0;i<dataLen;i++){
	   //加密的数据
	   encData=getKeyValue(base64Data.substring(i*240,(i+1)*240),modulus,publicExponent);
	   //最后要拼成一个字符串传递，所以避免分段与分隔符冲突，再一次base64,分隔符"_"
	   encBase64Data=BASE64.encoder(encData);
	   //encBase64Data=encData;
	   if (i==0) 
		  fullEncBase64Data=encBase64Data;
	   else
		  fullEncBase64Data=fullEncBase64Data+"_"+encBase64Data;
	}
	return fullEncBase64Data;
};

//对报文数据进行MD5签名
var md5SignMsg=function(secEncMsg,Authorization){
  return MD5(JSON.stringify(secEncMsg)+Authorization);
};